Data is often collected, organized, and indexed for virtually every transaction and communication that occurs in today's global economy. This information has become vital to enterprises and individuals. Consequently, a variety of techniques for securing, backing up, and replicating information exists in the industry.
With data replication, the concern is to ensure that information is highly available should a central source fail or become unavailable for a variety of other reasons, such as planned power outages, network upgrades, software upgrades, etc. A variety of techniques can be used to synchronize one master data source with another remote data source. If done properly when the master data source is unavailable, services and users can still seamlessly access the remote data source with uninterrupted service. Thus not only is information secured and backed up, information is also intended to be available twenty-four hours a day, seven days a week, and 365 days a year.
Additionally, information can be time-sensitive or time dependent, meaning at a particular point in time the state of a collection of information is meaningful. A particular temporal version of a collection of data may be used for a variety of purposes, such as recreating a problem in one or more software services just before an abnormal termination occurred, ensuring a financial transaction recorded properly, recovering an earlier version of a document or of a database to acquire original information that may now be desired, producing evidence to support a cause or action where the evidence (data) may have subsequently changed, reconstructing a chronology or history for information, etc.
When an enterprise or individual desires to capture a particular time or context dependent version of a collection of information, a snapshot of the information is created at the instant or within the context desired. If a local data source where a snapshot is being created is also being replicated for high availability, then the snapshot operation can be particularly costly in terms of processing throughput and storage. Typically, applications and memory being used by the applications have to be flushed and a snapshot created on the local data source. Next, the snapshot on the local data source is transferred over a network connection to the remote replicated source. This utilizes storage for the snapshot on the local source and the remote source and may unnecessarily delay the continued processing of the applications; it may also unduly tie up network bandwidth during the snapshot transfer for the local source to the remote replicated source.
Thus, it is advantageous to improve the techniques associated with replicating data having snapshot capabilities.